﻿using Google.Translates.WebService.Entities;

namespace Google.Translates.WebService.DataAccess
{
    public class DbDataAccess
    {
        /// <summary>
        /// Get the target Databaes Information from the Database in Google Translate Engine
        /// </summary>
        /// <param name="dbAlias">Is the key for Search the target database information</param>
        /// <returns>Return the DatabaseInfo Object</returns>
        protected DatabaseInfo GetDatabaseInfo(string dbAlias)
        {
            return null;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public bool SaveDbExceTask(DbExecTask obj)
        {
            return false;
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public bool SaveDbExceTaskLogInfo(DbExecTaskLogInfo obj)
        {
            return false;
        }

        public string RunDbExecTask(DbExecTask obj)
        {
            return null;
        }

        /// <summary>
        /// 根據DB Table
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public string ExecSqlToTargetDb(DbExecTask obj)
        {
            return null;
        }

        /// <summary>
        /// 把成功執行的Task移除
        /// 移除的方式有兩種
        /// 1.從DB上物理刪除,再在服務運行的初期,不建議用這的方式,因為資料的保留,會有效地反應服務運行的狀態
        /// 2.把主業務資料,遷移到別一個資料表,不建議在原記錄上進行邏輯刪除的標識,因為資料量增長的速度較快,我們需要把服務已經不會再進行訪問的資料,放到一個表結構的DB Table.
        /// 例如: 主業務資料表名稱為[TaskInfo],那麼被移除的資料將會被插入到[TaskInfo_Delete_201203]的表中, 可以考慮將時間範圍創建多個保存移除數據的DB Table
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public string RemoveDbExceTask(DbExecTask obj)
        {
            return null;
        }


    }
}
